/**
 * @(#) KLineStock.java
 */

package org.vsg.stock.core;

/**
 * @author Bill Vison
 */
public interface KLineStock extends java.io.Serializable
{
	
	/**
	 * @return 
	 */
	double getOpen( );
	
	/**
	 * @return 
	 */
	double getHigh( );
	
	/**
	 * @return 
	 */
	double getLow( );
	
	/**
	 * @return 
	 */
	double getClose( );
	
	/**
	 * @return 
	 */
	long getVol( );
	
	/**
	 * @return 
	 */
	double getTransactionValue( );
	
	/**
	 * @return 
	 */
	double getAverage( );
	

	/**
	 * the price compared between open and close price . 
	 * It's bottom price when the open price is less than close price ,otherwise the close price is bottom price
	 * @return
	 */
	double getBottom();
	
	/**
	 * thie price compared between open and close price.
	 * It's top price when the close price ls greater than open price , otherwise the open price is top price.
	 * @return
	 */
	double getTop();
	
	/**
	 * sort from low to high
	 * @return
	 */
	Attribute[] sortAttrs();
	
	
	public enum Attribute {
		OPEN, HIGH , LOW , CLOSE , VOL , BOTTOM , TOP, TRANSACTION_VALUE , AVERAGE
	}
	
	
}
